package edu.unf.cen6940.service;

import edu.unf.cen6940.domain.Category;
import edu.unf.cen6940.domain.Generatedproduct;
import edu.unf.cen6940.domain.Student;
import edu.unf.cen6940.domain.Thesis;
import edu.unf.cen6940.domain.Thesiscommittee;
import edu.unf.cen6940.domain.Thesisstatus;
import edu.unf.cen6940.domain.Thesistool;

import java.util.List;
import java.util.Set;

/**
 * Spring service that handles CRUD requests for Thesis entities
 * 
 */
public interface ThesisService {

	/**
	 * Return a count of all Thesis entity
	 * 
	 */
	public Integer countThesiss();

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public Thesis deleteThesisThesiscommittees(Integer thesis_thesisId, Integer related_thesiscommittees_thesisCommitteeId);

	/**
	 * Save an existing Generatedproduct entity
	 * 
	 */
	public Thesis saveThesisGeneratedproducts(Integer thesisId, Generatedproduct related_generatedproducts);

	/**
	 * Delete an existing Category entity
	 * 
	 */
	public Thesis deleteThesisCategories(Integer thesis_thesisId_1, Integer related_categories_categoryId);

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public Thesis saveThesisThesiscommittees(Integer thesisId_1, Thesiscommittee related_thesiscommittees);

	/**
	 * Return all Thesis entity
	 * 
	 */
	public List<Thesis> findAllThesiss(Integer startResult, Integer maxRows);

	/**
	 * Save an existing Thesisstatus entity
	 * 
	 */
	public Thesis saveThesisThesisstatuses(Integer thesisId_2, Thesisstatus related_thesisstatuses);

	/**
	 * Delete an existing Thesistool entity
	 * 
	 */
	public Thesis deleteThesisThesistools(Integer thesis_thesisId_2, Integer related_thesistools_thesisToolId);

	/**
	 * Delete an existing Student entity
	 * 
	 */
	public Thesis deleteThesisStudent(Integer thesis_thesisId_3, Integer related_student_studentId);

	/**
	 * Delete an existing Generatedproduct entity
	 * 
	 */
	public Thesis deleteThesisGeneratedproducts(Integer thesis_thesisId_4, Integer related_generatedproducts_generatedProductId);

	/**
	 * Save an existing Category entity
	 * 
	 */
	public Thesis saveThesisCategories(Integer thesisId_3, Category related_categories);

	/**
	 * Save an existing Thesistool entity
	 * 
	 */
	public Thesis saveThesisThesistools(Integer thesisId_4, Thesistool related_thesistools);

	/**
	 */
	public Thesis findThesisByPrimaryKey(Integer thesisId_5);

	/**
	 * Load an existing Thesis entity
	 * 
	 */
	public Set<Thesis> loadThesiss();

	/**
	 * Save an existing Thesis entity
	 * 
	 */
	public void saveThesis(Thesis thesis);

	/**
	 * Save an existing Student entity
	 * 
	 */
	public Thesis saveThesisStudent(Integer thesisId_6, Student related_student);

	/**
	 * Delete an existing Thesisstatus entity
	 * 
	 */
	public Thesis deleteThesisThesisstatuses(Integer thesis_thesisId_5, Integer related_thesisstatuses_thesisStatusId);

	/**
	 * Delete an existing Thesis entity
	 * 
	 */
	public void deleteThesis(Thesis thesis_1);
}